{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Tensorflow2教程-卷积自编码器"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](https://camo.githubusercontent.com/c2b4e51b1ebacac0d5fae4796bff2572797cc385/687474703a2f2f6d692e656e672e63616d2e61632e756b2f70726f6a656374732f7365676e65742f696d616765732f7365676e65742e706e67)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.导入数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.0.0-alpha0\n"
     ]
    }
   ],
   "source": [
    "import tensorflow as tf\n",
    "import tensorflow.keras as keras\n",
    "import tensorflow.keras.layers as layers\n",
    "print(tf.__version__)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(60000, 28, 28, 1)   (60000,)\n",
      "(10000, 28, 28, 1)   (10000,)\n"
     ]
    }
   ],
   "source": [
    "x_train = tf.expand_dims(x_train.astype('float32'), -1) / 255.0\n",
    "x_test = tf.expand_dims(x_test.astype('float32'),-1) / 255.0\n",
    "\n",
    "print(x_train.shape, ' ', y_train.shape)\n",
    "print(x_test.shape, ' ', y_test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.构造模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(None, 28, 28, 1)\n",
      "(None, 14, 14, 16)\n",
      "(None, 28, 28, 16)\n",
      "(None, 28, 28, 1)\n"
     ]
    }
   ],
   "source": [
    "\n",
    "inputs = layers.Input(shape=(x_train.shape[1], x_train.shape[2], x_train.shape[3]), name='inputs')\n",
    "print(inputs.shape)\n",
    "code = layers.Conv2D(16, (3,3), activation='relu', padding='same')(inputs)\n",
    "code = layers.MaxPool2D((2,2), padding='same')(code)\n",
    "print(code.shape)\n",
    "decoded = layers.Conv2D(16, (3,3), activation='relu', padding='same')(code)\n",
    "decoded = layers.UpSampling2D((2,2))(decoded)\n",
    "print(decoded.shape)\n",
    "outputs = layers.Conv2D(1, (3,3), activation='sigmoid', padding='same')(decoded)\n",
    "print(outputs.shape)\n",
    "auto_encoder = keras.Model(inputs, outputs)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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sEAKCgrMuj2t+Ph4CQwMFADSoEEDWbZsmZw+fVpvvfXr14uVlZXezIYcaFgzTJ0MprKlumFux5s5pryuaepalUqFrl276iW6euWVV9ClSxesXr3amN18rJKSkjBlyhScPHmS7Rlg9OjRcHR0xIYNG3TKa3J8M3UyHx8Q0RNC+1ijvC+//BJ79+5FRkaGCXpUffn5+VizZg02btzI9gyQkJCApKQkvRkXAdOPaamvmDqZyELVh5TX1ZGamopZs2ahXbt2+Otf/4ouXbqgbdu2iI2NRXBwMDZu3Kjz+qU5Sk5ORkREBFq0aMH2qpCeno7Fixfj4MGDSn1JSUnYsWMHbt26xRkOa4hBAZGFycvLQ0REhE7K68DAQL30tPXJo273Pvvss1i8eDHWrVuHsLCwOuxV9fXo0YPtGaCkpASbN2/G1q1bdQKMLl26KG9HfPLJJ0Zpy9IwKCCyMLa2toiIiEBERISpu1JnnJ2dzT4gIMM1bNhQ79VIMg6OKSAiIiIADAqIiIjoAQYFREREBIBBARERET1g8QMNr1y5gm+++cbU3SALoB3tz+OtcidOnADAfUSmoT3+LJlFz2gYEhKCVatWmbobRERkJtq3b68ku7JEFh0UENF9KpUK0dHRylTMRGSZOKaAiIiIADAoICIiogcYFBAREREABgVERET0AIMCIiIiAsCggIiIiB5gUEBEREQAGBQQERHRAwwKiIiICACDAiIiInqAQQEREREBYFBAREREDzAoICIiIgAMCoiIiOgBBgVEREQEgEEBERERPcCggIiIiAAwKCAiIqIHGBQQERERAAYFRERE9ACDAiIiIgLAoICIiIgeYFBAREREABgUEBER0QMMCoiIiAgAgwIiIiJ6gEEBERERAWBQQERERA8wKCAiIiIADAqIiIjoAQYFREREBIBBARERET3AoICIiIgAAA1M3QEiqls//fQTDh8+rFe+a9cupKSkKN/btWuHKVOm1GXXiMjEVCIipu4EEdWdd999F2q1Go0bN650nZKSErRu3Ro3btyow54Rkanx8QGRhRk/fjwAoKioqNKPtbU1/Pz8TNxTIqprvFNAZGE0Gg3atWuHzMzMR653/PhxeHp61lGviMgc8E4BkYWxsrLClClT0KhRo0rXadeuHfr27VuHvSIic8CggMgCTZw4EcXFxRUua9SoEQICAqBSqeq4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VtWe2dBSBxqqRCzrQQvz15M5MbfjsVu3bkhMTDSb/mipVCpER0crOe4N8corr6BLly5YvXr1Y+yZcSUlJWHKlCk4efIk2zOS0aNHw9HRERs2bKjW77THWkxMzOPoltni4wMieiJ9+eWX2Lt3LzIyMkzdFYPk5+djzZo12LhxI9szkoSEBCQlJenNykiVY1BARArt6Pi8vDwT96T22rZti9jYWAQHB1c46t/cJCcnIyIiAj169GB7RpCeno7Fixfj4MGDaNGiRZ20+SRgUEBEyMvLw7x585RUs7NmzUJCQoKJe1V7zz77LBYvXox169aZuitV6tGjR51evJ7k9kpKSrB582Zs3bq1Xr1Kaw7qZiYRIjJrtra2iIiIQEREhKm7YnTOzs4ICwszdTeoDjVs2FDv9UkyDO8UEBEREQAGBURERPQAgwIiIiICwKCAiIiIHrDYgYbVmQSF6HHRzqHP47Fqq1atwrfffmvqbpCFSEhIQN++fU3djTpncTMapqamYu7cuTXOTEb0JDp48CB69OihZP8jIsDHxwc+Pj6m7kadsriggIj01WQaYSJ68nBMAREREQFgUEBEREQPMCggIiIiAAwKiIiI6AEGBURERASAQQERERE9wKCAiIiIADAoICIiogcYFBAREREABgVERET0AIMCIiIiAsCggIiIiB5gUEBEREQAGBQQERHRAwwKiIiICACDAiIiInqAQQEREREBYFBAREREDzAoICIiIgAMCoiIiOgBBgVEREQEgEEBERERPcCggIiIiAAwKCAiIqIHGBQQERERAAYFRERE9ACDAiIiIgLAoICIiIgeYFBAREREABgUEBER0QMMCoiIiAgAgwIiIiJ6gEEBERERAQBUIiKm7gQR1Z21a9fiiy++0Cm7cuUK2rRpg2bNmillnTp1QlxcXF13j4hMqIGpO0BEdevu3bs4e/asXnlOTo7Od41GU1ddIiIzwccHRBbGz88PKpXqkes0bNgQb7zxRt10iIjMBh8fEFmg3r1749SpU6jsf3+VSoXk5GR06tSpbjtGRCbFOwVEFuj111+HtbV1hcusrKzw4osvMiAgskAMCogskJ+fX6VjBqysrPD666/XcY+IyBwwKCCyQA4ODhgwYECFdwtEBK+99poJekVEpsaggMhCTZkyRW9MgbW1NYYMGQIHBwcT9YqITIlBAZGFeu21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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "auto_encoder.compile(optimizer=keras.optimizers.Adam(),\n",
    "                    loss=keras.losses.BinaryCrossentropy())\n",
    "keras.utils.plot_model(auto_encoder, show_shapes=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.训练与测试"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 54000 samples, validate on 6000 samples\n",
      "54000/54000 [==============================] - 31s 572us/sample - loss: 0.1007\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<tensorflow.python.keras.callbacks.History at 0x7f0089d31fd0>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "early_stop = keras.callbacks.EarlyStopping(patience=2, monitor='loss')\n",
    "auto_encoder.fit(x_train,x_train, batch_size=64, epochs=1, validation_split=0.1,validation_freq=10,\n",
    "                callbacks=[early_stop])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x288 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "decoded = auto_encoder.predict(x_test)\n",
    "n = 5\n",
    "plt.figure(figsize=(10, 4))\n",
    "for i in range(n):\n",
    "    # display original\n",
    "    ax = plt.subplot(2, n, i+1)\n",
    "    plt.imshow(tf.reshape(x_test[i+1],(28, 28)))\n",
    "    plt.gray()\n",
    "    ax.get_xaxis().set_visible(False)\n",
    "    ax.get_yaxis().set_visible(False)\n",
    "\n",
    "    # display reconstruction\n",
    "    ax = plt.subplot(2, n, i + n+1)\n",
    "    plt.imshow(tf.reshape(decoded[i+1],(28, 28)))\n",
    "    plt.gray()\n",
    "    ax.get_xaxis().set_visible(False)\n",
    "    ax.get_yaxis().set_visible(False)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
